Need Help Understanding Custom Showdown Server Code (Tiering and Learnset)

Okay, I managed to get as far as making the server run locally. I also read through What I need help with now is the following as I'm making this server for a draft league I run and wanted to tailor make it to our current season setup.
- I figured out how to ban and unban pokemon in a ruleset but how do I make a pokemon appear Illegal in the Team Builder? For example, Blissey is banned but still appears as an OU option in the team bulder for the format. Even if I change Blissey's Tier formats-data.ts to "Illegal" she still appears as OU?
- Looking at a Mons Learnset what in Arceus's name this stuff mean?

protect: ["8M", "8V", "7M", "7V", "6M", "5M", "4M", "3M"]

I couldn't find what these things meant anywhere and want to make sure all the movesets are up to date for mons for the ruleset where's running and I have 0 clue what it means.

These are the only problems I've encountered thus far. Coders of Smogon and Showdown, help a dude out!
I only know about the learnset stuff:

Looking at a Mons Learnset what in Arceus's name this stuff mean?

protect: ["8M", "8V", "7M", "7V", "6M", "5M", "4M", "3M"]
I can't remember where I found this, I think somework in the pokemon showdown code, but it goes:

- The first number is the generation, then the letters...
- M: TM/HM
- T: Tutor
- L: Start or level-up, second character onwards is the level
- R: Restricted (special moves like Rotom moves)
- E: Egg
- D: Dream World
- S: Event, second character onwards is the index in eventData.
- V: Virtual Console or Let's Go transfer

I'm not too sure what R/C actually are, but hopefully looking at the moves/pokemon with those sources (should be very few) would give some insight
Last edited:
Commenting this for future users, I found the original source from the Pokemon Showdown GitHub repo:

 * Describes a possible way to get a move onto a pokemon.
 * First character is a generation number, 1-7.
 * Second character is a source ID, one of:
 * - M = TM/HM
 * - T = tutor
 * - L = start or level-up, 3rd char+ is the level
 * - R = restricted (special moves like Rotom moves)
 * - E = egg
 * - D = Dream World, only 5D is valid
 * - S = event, 3rd char+ is the index in .eventData
 * - V = Virtual Console or Let's Go transfer, only 7V/8V is valid
 * - C = NOT A REAL SOURCE, see note, only 3C/4C is valid
 * C marks certain moves learned by a pokemon's prevo. It's used to
 * work around the chainbreeding checker's shortcuts for performance;
 * it lets the pokemon be a valid father for teaching the move, but
 * is otherwise ignored by the learnset checker (which will actually
 * check prevos for compatibility).
type MoveSource = string;

Users Who Are Viewing This Thread (Users: 1, Guests: 0)